<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>PackageKit - What is PackageKit?</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="style.css" type="text/css" media="screen"/>
</head>
<body>

<table align="center" class="title">
<tr>
 <td><img src="img/packagekit.png" alt=""/></td>
 <td width="95%" valign="middle"><p class="title">What is PackageKit?</p></td>
 <td><img src="img/packagekit.png" alt=""/></td>
</tr>
</table>

<p>Back to the <a href="index.html">main page</a></p>

<h1>What is PackageKit?</h1>
<p>
PackageKit is a system designed to make installing and updating software
on your computer easier.
The primary design goal is to unify all the software graphical tools
used in different distributions, and use some of the latest technology
like PolicyKit.
</p>

<table class="noteinformation">
<tr>
 <td><img src="img/dialog-information.png" alt="[NOTE]"/></td>
 <td>
  <p>If you're easily bored, checkout the
   <a href="http://www.hughsie.com/public/introduction-to-packagekit.pdf">presentation</a>
   or the
   <a href="http://video.fosdem.org/2008/maintracks/FOSDEM2008-packagekit.ogg">video</a>
   I prepared for FOSDEM 2008 and skip the rest of this page.
  </p>
 </td>
</tr>
</table>

<p>
The actual nuts-and-bolts distro tool (dnf, apt, etc) is used by
PackageKit using compiled and scripted helpers.
PackageKit isn't meant to replace these tools, instead providing a
common set of abstractions that can be used by standard GUI and text mode
package managers.
</p>

<p>
PackageKit itself is a system activated daemon called
<code>packagekitd</code>.
Being system activated means that it's only being run when the user is
using a text mode or graphical tool, and quits when it's no longer being
used.
This means we don't delay the boot sequence or session startup and don't
consume memory when not being used.
</p>

<table class="noteinformation">
<tr>
 <td><img src="img/dialog-information.png" alt="[NOTE]"/></td>
 <td>
  <p>
   By default, PackageKit uses PolicyKit for user authentication.
   This means that you, as an admin, can specify with fine-grained control
   what your users can and cannot do.
  </p>
  <p>
   For instance, an admin could specify that unprivileged users can update the
   system and do searching, but are not allowed to install or remove packages.
   For home users it's typical to ask the user for their own, or the
   administrator's <code>root</code> password.
   With PolicyKit, all these options are possible.
  </p>
 </td>
</tr>
</table>

<p>
Use cases for PackageKit exist for the following scenarios:
</p>

<ul>
 <li>Boot time security updates</li>
 <li>Installing files automatically, e.g. openoffice-clipart</li>
 <li>Installing new features, e.g. smart-card readers</li>
 <li>Allowing unprivileged users to install software in a corporate
build</li>
 <li>Opening unknown file formats</li>
 <li>Removing dependencies for files</li>
</ul>

<p>
What PackageKit is not:
</p>
<ul>
 <li>A huge daemon with lots of dependencies.</li>
 <li>Targeted to a particular architecture or platform.</li>
 <li>Produced by any one vendor.</li>
</ul>

<p>
Formally, PackageKit is a D-Bus abstraction layer that allows the
session user to manage packages in a secure way using a cross-distro,
cross-architecture API.
</p>

<p>Back to the <a href="index.html">main page</a></p>

<p class="footer">
 Copyright <a href="mailto:richard@hughsie.com">Richard Hughes 2007-2013</a><br/>
 <a href="http://validator.w3.org/check/referer">Optimized</a>
 for <a href="http://www.w3.org/">standards</a>.
</p>

</body>
</html>
